"""
最基本的异常处理结构包括try和except块。
代码首先执行 try 块中的语句，如果没有发生异常，程序会跳过except块。
如果在try块中发生异常，程序会停止执行try块中的剩余代码，并跳到对应的except块中执行。
"""
#在try代码块中出现了除零错误，在except语句中捕获到了ZeroDivisionError类型的错误，
#不会继续往下执行print(result)语句，直接进入except代码块执行print("捕获到错误")语句。
try:
    # 可能会引发异常的代码
    result = 10 / 0
    print(result)
except:
    # 当捕获到错误时执行的代码
    print("捕获到错误")
#异常处理语句可以捕获特定类型的异常，方法是在 except 关键字后面指定异常的类型。
try:
    result = 10 / int(input())
    print(result)
# 当捕获到ZeroDivisionError时执行的代码
except ZeroDivisionError:
    print("捕获到除零错误")
# 当捕获到ValueError时执行的代码
except ValueError:
    print("捕获到值错误")
#try-except-else语句中，else块中的代码只有在try块中没有发生异常时才会执行。
try:
    result = 10 / 2
except ZeroDivisionError:
    print("捕获除零错误")
else:
    print("没有异常，结果是:", result)
#try-except-finally语句中，finally 块中的代码无论是否发生异常都会执行，常用于释放资源或进行清理操作。
try:
    result = 10 / 0
except ZeroDivisionError:
    print("捕获除零错误")
finally:
    print("无论是否发生异常，都会执行这段代码")
#try-except异常处理语句可以用来解决输入次数未知的问题。
#当try中的语句块没有出现错误可以正常运行时，执行try中的语句块，否则执行except下的语句块。
while(True):
    try:
        n = int(input())
        # do something
    except:
        break